Grundkurs SQL

3.4  Mathematische Funktionen

In MySQL gibt es eine Vielzahl von vordefinierten Funktionen, die mit Spaltenwerten als Argumenten eine Berechnung vornehmen und den gewünschten Wert für die Abfrage ausgeben.
Eine Funktion baut sich aus dem Funktionsnamen gefolgt von einem Klammernpaar mit den Argumenten auf, was dann so aussieht:

funktionsname(argument1, argument2)

Die Funktionsnamen in MySQL müssen in anderen SQL-Dialekten (z.B. ORACLE, MS Access, usw.) nicht genauso benannt sein. Es lohnt sich also immer ein Blick in die Dokumentation der jeweiligen Datenbank.

Um einen Dezimalwert anschließend zu runden, gibt es die Funktion ROUND(X)

SELECT ROUND(9.45)
  Ergebnis: -> 9

SELECT ROUND(9.5)
  Ergebnis: -> 9

SELECT ROUND(9.55)
  Ergebnis: -> 10

ROUND(X,D) gibt das Argument X gerundet auf eine Zahl mit D Dezimalstellen zurück. Wenn D = 0 ist hat das Ergebnis keinen Dezimalpunkt oder Bruchteil und entspricht damit ROUND(X):

SELECT ROUND(1.298, 1)
       Ergebnis: -> 1.3

SELECT ROUND(1.298, 0)
         Ergebnis: -> 1

Diese Funktion lässt sich auch sehr gut auf unsere Abfrage mit dem Quadratmeterpreis anwenden. Wie wir im Ergebnis gesehen haben, hatten die Quadratmeterpreise sehr viele Nachkommastellen.

[12]SELECT raum_ID AS Raumnummer, raummiete AS Monatlicher_Mietpreis,
       ROUND(raummiete / raumgroesse, 2) AS Quadratmeterpreis
FROM   tbl_raum

Als letztes soll hier noch die Funktion für die Bildung des absoluten Betrages gezeigt werden – ABS(X). Sie gibt den absoluten Wert von X zurück:

SELECT ABS(2)
       Ergebnis: -> 2

SELECT ABS(-32)
       Ergebnis: -> 32

Übersichten über die vielfältigen Funktionen findet man im MySQL 5.1 Referenzhandbuch speziell im
Kapitel 12. Funktionen für die Benutzung in SELECT- und WHERE-Klauseln.